package com.zengguang.testkaoshi.services.impl;



import com.zengguang.testkaoshi.dao.ClassDao;
import com.zengguang.testkaoshi.dao.StudentInfoDao;
import com.zengguang.testkaoshi.eo.ClassEOPage;
import com.zengguang.testkaoshi.pojo.Class;
import com.zengguang.testkaoshi.services.IClassService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 *实现业务及流程接口当中的内容
 */
@Service
public class ClassService implements IClassService {
    @Autowired
    private ClassDao dao;
    @Autowired
    private StudentInfoDao studentInfoDao;

    /**
     * 班级添加方式实现
     * @param cla 班级实体
     * @return 是否成功（-1 表示重复信息）
     */
    @Override
    public int insertClass(Class cla) {
        int returnInt=0;
        /*
        * 1.业务判断
        * (1)班级名不能重复
        */
        //(2)判断角色
        int classNameCount=dao.getClassNameCount(cla.getClassname());
        if (classNameCount<1){
            //2、数据添加
            int addClassInt=dao.insertClass(cla);
            //3、返回值设置
            returnInt=addClassInt;
        }else {
            returnInt=-1;//表示有相同名称
        }

      return returnInt;
    }

    /**
     * 班级更新
     * @param cla 班级实体
     * @return 更新是否成功(-1:更新执行SQL报错）
     */
    @Override
    public int updateClass(Class cla) {
        int isUpdate=0;
        try {
            isUpdate=dao.updateClass(cla);
        }catch (Exception ex){
            isUpdate=-1;
            //打印更新时报错的情况
            System.out.println("更新班级信息时执行SQL报错的原因为："+ex.getMessage());
        }
        return isUpdate;
    }

    @Override
    public int deleteClass(int classid) {
        int isdel=0;
        /*业务流程判断*/
        //(1)删除班级不能与学生信息表还有试卷表有关联
        try {
                //返回的结果总数量大于0说明有这个班级才可以删除
                if (studentInfoDao.getClassCount(classid)>0){
                    isdel=dao.deleteClass(classid);
                }else {
                    isdel=-1;
                }
        }catch (Exception ex){
            isdel=-1;
            System.out.println("删除班级信息执行SQL报错"+ex.getMessage());
        }

        return isdel;
    }

    @Override
    public List<ClassEOPage> getWhereAll(ClassEOPage classEOPage) {
        return dao.getWhereAll(classEOPage);
    }


}
